package com.wgl.yygh.serivce;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wgl.model.hosp.Schedule;
import com.wgl.model.hosp.ScheduleQueryVo;
import com.wgl.model.vo.hosp.ScheduleOrderVo;
import org.springframework.data.domain.Page;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author wgl
 * @version 1.0.0
 * @ClassName ScheduleService.java
 * @Description TODO
 * @createTime 2022年02月06日 15:52:00
 */
public interface ScheduleService extends IService<Schedule> {
    void save(Map<String, Object> map);

    Page<Schedule> findPageSchedule(Integer page, Integer limit, ScheduleQueryVo scheduleQueryVo);

    void remove(String hospcode, String hospScheduleId);

    /**
     * @param page:
     * @param limit:
     * @param hoscode:
     * @param depcode: ;
     * @Author: Wgl
     * @Description: 查询排班信息
     * @Date: 2022/2/7 23:17;
     * @return: java.util.Map<java.lang.String, java.lang.Object>;
     */
    Map<String, Object> getScheduleRule(Integer page, Integer limit, String hoscode, String depcode);

    /**
     * @param workDate: 工作日期
     * @param hoscode:  医院编码
     * @param depcode:  科室编号
     * @Author: Wgl
     * @Description: 查询排班的详细情况
     * @Date: 2022/2/8 20:43;
     * @return: java.util.List<com.wgl.model.hosp.Schedule>;
     */
    List<Schedule> getScheduleDetail(String hoscode, String depcode, String workDate);

    /**
     * @param page:
     * @param limit:
     * @param hoscode:
     * @param depcode: ;
     * @Author: Wgl
     * @Description: 获取可预约的排版数据  从mongoDB中获取
     * @Date: 2022/2/13 14:52;
     * @return: java.lang.Object;
     */
    Map<String,Object> getBookingScheduleRule(Integer page, Integer limit, String hoscode, String depcode);

    /**
    * @Author: Wgl
    * @Description: 更具id获取排班详细情况
    * @Date: 2022/2/13 17:00;
    * @param scheduleId: ;
    * @return: com.wgl.model.hosp.Schedule;
    */
    Schedule getScheduleId(String scheduleId);

    /**
    * @Author: Wgl
    * @Description:根据排班id获得下数据
    * @Date: 2022/2/13 23:02;
    * @param scheduleId: ;
    * @return: com.wgl.model.vo.hosp.ScheduleOrderVo;
    */
    ScheduleOrderVo getScheduleOrderVo(String scheduleId);

    /**
    * @Author: Wgl
    * @Description:更新排班的信息
    * @Date: 2022/2/14 15:17;
    ;
    * @return: void;
    */
    void updatePb(Schedule schedule);
}
